<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h2>回顾promise</h2>
    <script>
      // promise 为了解决回调地狱的问题
      // setTimeout(() => {
      //   console.log(1);
      //   setTimeout(() => {
      //     console.log(2);
      //     setTimeout(() => {
      //       console.log(3);
      //     }, 1000);
      //   }, 2000);
      // }, 3000);

      const p = new Promise((resolve, reject) => {
        // 成功时候调用 resolve
        // 失败时候调用 reject
        // 处理异步任务
        setTimeout(() => {
          resolve(1);
          // reject("错了");
        }, 1000);
      });

      p.then(
        (res) => {
          console.log(res);
          // return 1;
          return new Promise((resolve, reject) => {
            resolve(2);
          });
        },
        (err) => {
          console.log("a:" + err);
        }
      )
        .then((res) => {
          console.log(res);
        })

        .catch((err) => {
          console.log(err);
        });

      // all 和 race
      // all 接收一个数组，数组里面应该是 promise 对象，等所有结果全部返回才会返回一个数组，如果有一个出错就直接 catch
      // race 先执行完的先返回，如果有一个出错就直接 catch
      // const arr = [axios.get(""), axios.post(""), axios.get(""), axios.get("")];
      // Promise.all(arr).then((res) => {});
    </script>
  </body>
</html>
